www.gusucode.com > 动网论坛Dvbbs v8.3 > 动网论坛Dvbbs v8.3\code\源程序\boke\Script\Dv_form.js
/*////////////////////////////////////////////////////////////////// * Script For Dvbbs Program -- 表单对象相关 * Version: 8.3.0 * Copyright (C) 2000 - 2005 bbs.dvbbs.net * * For further information visit: * http://bbs.dvbbs.net/ * http://www.aspsky.net/ * * Builder: Fssunwin * Created: 2005-04-23 */////////////////////////////////////////////////////////////////// var Lang = new Array() ; var Dvbbs_bIsIE5=document.all; var Dvbbs_Mode = 3; var Dvbbs_bTextMode=1; if (Dvbbs_bIsIE5){ } else{ var Dvbbs_bIsNC=true; } /* * 定义提示信息 */ Lang["Msg"] = "提示:"; Lang["NEED_TEL_NUM"] = "请正确填写电话号码!"; Lang["NEED_NUM"] = "请正确填写数值!"; Lang["NOT_DATE"] = "请正确填写或选取正确的日期!"; Lang["NO_Checked"] = "未选择!"; Lang["NOT_MIN"] = "该项数值不能小于:" Lang["NOT_MAX"] = "该项数值不能大于:" Lang["NOT_MAXLen"] = "字符限制不要超过:" Lang["NOT_MINLen"] = "字符限制不要小于:" Lang["NEED_English"] = "只能使用英文字母、数字或下划\"_\"填写。" /* * 添加字串对象方法 */ String.prototype.remove=function(start,length){ var s=''; if (start>0) s=this.substring(0,start); if (start+length<this.length) s+=this.substring(start+length,this.length); return s; }; String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g,''); }; String.prototype.ltrim=function(){ return this.replace(/^\s*/g,''); }; String.prototype.rtrim=function(){ return this.replace(/\s*$/g,''); }; String.prototype.replaceNewLineChars=function(replacement){ return this.replace(/\n/g,replacement); } var Dv_Form = new FormObject(); function FormObject(){ // 修改 textarea 文本区域编辑栏高度 this.set_Size = function(objname,num){ if (objname=="[object]"){ var obj = objname; }else{ var obj = Dvbbs.Objects(objname); }; if (obj) { if (parseInt(obj.rows)+num>=3) {obj.rows = parseInt(obj.rows) + num; }; }; }; //SELECT表单选取 this.Set_Select = function(objname,Value){ if (objname=="[object]"){ var obj = objname; }else{ var obj = Dvbbs.Objects(objname); }; if (obj) { for (var i=0;i<obj.length;i++){ if (obj.options[i].value==Value){obj.options[i].selected=true;break;}; }; }; }; //Weather SELECT表单选取 this.Weather_Select = function(objname,Value,WeatherSrc,PicPath){ if (objname=="[object]"){ var obj = objname; }else{ var obj = Dvbbs.Objects(objname); }; var SrcFile = ""; if (obj) { for (var i=0;i<obj.length;i++){ if (obj.options[i].value.split("|")[1]==Value){ SrcFile = obj.options[i].value.split("|")[0]; obj.options[i].selected=true;break; }; }; }; var ObjSrc = Dvbbs.Objects(WeatherSrc); if (ObjSrc) { ObjSrc.src = PicPath + SrcFile; } }; //单选表单选取 this.Set_Radio = function(objname,Value){ if (objname=="[object]"){ var obj = objname; }else{ var obj = Dvbbs.Objects(objname); }; if (obj) { for (var i=0;i<obj.length;i++){ if (obj[i].value==Value){obj[i].checked=true;break;}; }; }; }; /** * 文本表单检验 * <input type="text" onkeyup="javascript:Dv_Form.CheckNumer(this,0,10);" >... */ //验证表单数值 object 表单对象 | n_min最小值 | n_max 最大值 this.CheckNumer = function (Object,n_min,n_max) { var Value = Object.value; if (isNaN(Value)){ alert(Lang["NEED_NUM"]); Object.value = 0; } else{ Value = parseFloat(Value); if (!isNaN(n_min)){ n_min = parseFloat(n_min); if (Value<n_min){alert(getMsg(Lang["NOT_MIN"]+n_min));Object.value = n_min;} } if (!isNaN(n_max)){ n_max = parseFloat(n_max); if (Value>n_max){alert(getMsg(Lang["NOT_MAX"]+n_max));Object.value = n_max;} }; }; }; /** *文本输入限制 object 表单对象 | n_max 最大值 //onkeydown or onkeyup * <input type="text" onkeyup="javascript:Dv_Form.CheckLength(this,255);" >... */ this.CheckLength = function(obj,n_max){ if (obj){ Val_Length = obj.value; if (!isNaN(n_max)){ if (Val_Length.length > n_max){ obj.value = Val_Length.substring(0,n_max);alert(getMsg(Lang["NOT_MAXLen"]+n_max)); }; }; }; }; //输出指定文件表单字节数 this.GetLength = function(_Getobj,Putobj){ var _Putobj = Dvbbs.Objects(Putobj); if (!_Getobj||!_Putobj){alert("test");return false;} else{ var oBjName = _Putobj.nodeName.toLowerCase(); var TotalLen = _Getobj.value.length; if (oBjName=="input"||oBjName=="textarea"){_Putobj.value = TotalLen;}else{_Putobj.innerText = TotalLen;}; }; }; /* * 颜色选取器 表单及图片底色可付上默认值 * img_obj 图标对象 ,input_val 输出到表单名 * <input type="text" name="setColor" value="#000000"/><img border="0" src="rect.gif" style="cursor:pointer;background-Color:#000000;" onclick="Dv_Form.Getcolor(this,'setColor');" alt="选取颜色!"/> */ var ColorImg; var ColorValue; this.Getcolor = function (img_obj,input_val){ var obj = document.getElementById("Dv_colourPalette"); if (!obj) { obj = document.createElement('iframe'); obj.id = "Dv_colourPalette"; obj.width = "260px"; obj.height = "165px"; obj.src = "selcolor.htm"; obj.style.visibility = "hidden" obj.style.position = "absolute" obj.style.border = "1px gray solid" obj.frameborder="0"; obj.scrolling="no"; document.getElementsByTagName("body")[0].appendChild(obj); }; ColorImg = img_obj; ColorValue = Dvbbs.Objects(input_val); if (obj){ obj.style.left = Dvbbs.getOffsetLeft(ColorImg) + "px"; obj.style.top = (Dvbbs.getOffsetTop(ColorImg) + ColorImg.offsetHeight) + "px"; if (obj.style.visibility=="hidden"){obj.style.visibility="visible";} else {obj.style.visibility="hidden";}; }; }; this.setColor = function(color){ if (ColorValue){ColorValue.value = color;} if (ColorImg){ColorImg.style.backgroundColor = color;} document.getElementById("Dv_colourPalette").style.visibility="hidden"; }; /** *文本字符输入限制 object 表单对象 | n_max 最大值 //onkeydown or onkeyup * <input type="text" onkeyup="javascript:Dv_Form.CheckEnglish(this);" >... */ this.CheckEnglish = function(obj){ if (obj){ if (CheckIfEnglish(obj.value)==false){ obj.value = ""; alert(getMsg(Lang["NEED_English"])); }; }; }; } /* * 获取提示信息 * @return String */ function getMsg(pKey) { return Lang["Msg"] +"\n\n" + pKey ; } /* * 获取相应格式的日期 * pVal为增加的天数,可为+/-,将返还距离当天天数的日期; * 当 pDiv 为'/'时,返还 '2004/11/01'的格式. * getDate(0,"/") * @param pVal 距离天数. * @param pDiv 分隔符. * @return String */ function getDate(pVal, pDiv) { var dtnum = Date.parse(new Date()); dtnum = dtnum + (pVal * (3600000 * 24)); dt = new Date(dtnum); var year = dt.getYear(); var month = (dt.getMonth() + 1) + ''; var day = dt.getDate() + ''; if(month.length == 1) month = "0" + month; if(day.length == 1) day = "0" + day; rtn = year + pDiv + month + pDiv + day; return rtn; } /* * 检测是否只有英文及数字及"_" * @param pKey String * @return boolean */ function CheckIfEnglish(pKey) { var Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_"; var i; var c; for( i = 0; i < pKey.length; i ++ ) { c = pKey.charAt( i ); if (Letters.indexOf( c ) < 0) return false; }; return true; }; /* * 检测是否含有中文 * @param pKey String * @return boolean */ function CheckIfChina(pKey){ var str=pKey; var lst = /[u00-uFF]/; if (!lst.test(str)) return false; return true; }; /* * Email 检测 * @param str 检测字串 * @return boolean */ function CheckEmail(str) { var filter=/^.+@.+\..{2,3}$/i; //var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z])?)$/i if (filter.test(str)) { return true; } else { return false; }; }; /* * isNumber('1234') * @param pVal 检测字串 * @return boolean */ function isPhone(pVal) { if((strTrim(pVal)).length == 0 ) {return false;}; var str = "0123456789()-,*# "; for( i = 0; i < pVal.length; i++){ if( str.indexOf( pVal.charAt( i ) ) < 0 ){ alert(getMsg('NEED_TEL_NUM')); return false; break; }; }; return true; }; /* * 验证是否身份证号码 * @param strValue 检测字串 * @return boolean */ function isCertificateNum(strValue) { if(!(strValue.length==15||strValue.length==18)) return(false); var str = "0123456789Xx"; for( i = 0; i < strValue.length; i++){ if( str.indexOf( strValue.charAt( i ) ) < 0 ) return false; return true; }; }; /* * 查找替换函数 * str原字串,a要换掉pattern,b换成字串,i是否区分大小写,Msg提示信息 */ function Replace(str,a,b,i,Msg){ a = a.replace("?","\\?"); if (i==null){var r = new RegExp(a,"gi");} else if (i) {var r = new RegExp(a,"g");} else{var r = new RegExp(a,"gi"); }; if (r.test(str)) { if (Msg){alert(getMsg(Msg));}; return str.replace(r,b); }else{return str;}; }; /* OchangeSel_Cat ObjName列表表单名,Stype所属分类,Val=CATID的值。 */ function OchangeSel_Cat(ObjName,Stype,Val){ var Obj = Dvbbs.Objects(ObjName); var k=0;var sel =0; if (Obj&&Stype!="") { if (Obj.length>0) { for(var i = 10; i >= 0; i--){ Obj.options.remove(i); }; } Stype = parseInt(Stype) if (Stype >=0&&BokeCat_ID[Stype].length>0) { for (var CatID in BokeCat_ID[Stype]){ if (Val==BokeCat_ID[Stype][CatID]) { sel = k; } Obj.options[k++] = new Option(BokeCat_Title[Stype][CatID], BokeCat_ID[Stype][CatID]); }; if (sel>0) { Obj.options[sel].selected = true; }; }; }; } /* 编辑器相关功能 */ function getContent(objname){ var oEditor = FCKeditorAPI.GetInstance(objname) ; alert(oEditor.GetXHTML()) } function put_ubb(objname,ubbcode,val){ var oEditor = FCKeditorAPI.GetInstance(objname) ; var Ubb_str2= "[/"+ubbcode+"]"; if (val){ var Ubb_str1= "["+ubbcode+"="+val+"]"; }else{ var Ubb_str1= "["+ubbcode+"]"; }; if (oEditor.EditorDocument.selection.type=="Text"){ var Selval = oEditor.EditorDocument.selection.createRange().text; oEditor.InsertHtml(Ubb_str1 + Selval +Ubb_str2); }else { oEditor.InsertHtml(Ubb_str1 + Ubb_str2); }; } function put_html(objname,val){ var oEditor = FCKeditorAPI.GetInstance(objname) ; if (oEditor){ oEditor.InsertHtml(val); }; } function GetNode(objname,toobj,Maxlen){ var oEditor = FCKeditorAPI.GetInstance(objname); toobj = Dvbbs.Objects(toobj); if (oEditor&&toobj){ if (oEditor.EditorDocument.selection.type=="Text"){ var Selval = oEditor.EditorDocument.selection.createRange().text; if (Selval.length>Maxlen) { Selval = Selval.substring(0,Maxlen) } toobj.value = Selval; }else { alert("请选取作为摘要的内容!"); }; }; } function PlayUbb(ObjName,code){ var txt1 = ""; var txt2 = ""; var val1 = ""; var val2 = ""; switch (code) { case 'FLASH': txt1 = "Flash宽度,高度"; val1 = "500,350"; txt2 = "Flash 文件的地址"; val2 = "http://" break; case 'RM': txt1 = "视频的宽度,高度,播放参数\r(播放参数:0=手动播放,1=自动播放)"; val1 = "500,350,1"; txt2 = "视频文件的地址"; val2 = "http://" break; case 'MP': txt1 = "视频的宽度,高度,播放参数\r(播放参数:0=手动播放,1=自动播放)"; val1 = "500,350,1"; txt2 = "视频文件的地址"; val2 = "http://" break; case 'QT': txt1 = "视频的宽度,高度"; val1 = "500,350"; txt2 = "视频文件的地址"; val2 = "http://" break; default : return; }; var addtxt1 = prompt(txt1,val1); if (addtxt1!=null) { var addtxt2=prompt(txt2,val2); if (addtxt2!=null) { if (addtxt1=="") { var AddTxt="<br/>["+code+"=500,350]"+addtxt2+"[/"+code+"]<br/>"; put_html(ObjName,AddTxt); } else { AddTxt="<br/>["+code+"="+addtxt1+"]"+addtxt2+"[/"+code+"]<br/>"; put_html(ObjName,AddTxt); } }; }; } function CheckPostForm(Obj){ if (Obj.sCatID) { if (Obj.sCatID.value=="-1"||Obj.sCatID.value=="") { alert("请选取发表的话题!"); return false; }; }; if (Obj.Catid) { if (Obj.Catid.value=="-1"||Obj.Catid.value=="") { alert("请选取相应的栏目或建立好栏目后再进行发表!"); return false; }; }; } function Dvbbs_foralipay(obj) { var arr = showModalDialog("boke/images/alipay/alipay.htm", window, "dialogWidth:20em; dialogHeight:34em; status:0; help:0"); if (arr) { put_html(obj,arr); //IframeID.document.body.innerHTML+=arr; } //IframeID.focus(); }